import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un objeto cuyo trabajo es el de mover a todo el escenario de izquierda 
 * a derecha y al revez
 * 
 * @author Miguel Martinez Aguilar
 * @version 08 de Mayo del 2013
 */
public class Movedor extends ScrollActor
{
    private int dist = 25;// es la distancia con la que se desplaza el escenario cada ciclo.
    private int cont;// el el contador de ciclos que se mueve el escenario.
    private boolean izder;// es un boleano que indica hacia donde se mueve (izquierda o derecha).
    private boolean seMueve;// es un boleano que indica si se esta moviendo el escenario.
    private Imagen cielo;// es una imagen que representa el cielo.
    private Imagen mar;// es una imagen que representa el mar.
    
    /**
     * Constructor de Movedor
     */
    public Movedor()
    {
        cont = 0;
        izder = true;
        seMueve = false;
        cielo = new Imagen("cielo.png"); // se mueve de a 1
        mar = new Imagen("mar.png"); // se mueve de a 3
    }
    
    /**
     * Cuando este metodo esta activo, desplaza a los objetos a la izquierda o derecha.
     */
    public void act() 
    {
        if(seMueve){
            if(cont > 22){
                if(!contador(26)){
                    if(izder){
                        cielo.move(-2);
                        mar.move(-4);
                        getWorld().moveCamera(dist);
                    }
                    else{
                        cielo.move(2);
                        mar.move(4);
                        getWorld().moveCamera(-dist);
                    }
                }
                else{
                    if(izder)izder = false;
                    else izder = true;
                    cont = 0;
                    seMueve = false;
                }
            }
            else cont++;
        }
    }
    
    /**
     * Este metodo activa el movimiento
     */
    public void ActivaMover()
    {
        seMueve = true;
    }
    
    /**
     * Este metodo verifica si ya no se mueve la pantalla. <p>
     * Regresa un boleano (true o false).
     */
    public boolean SeMueve()
    {
        return seMueve;
    }
    
    /**
     * Este metodo agrega el cielo y el mar al escenario
     */
    public void preparar()
    {
        this.agregaObj(cielo, 375, 74); // 1 * 25
        this.agregaObj(mar, 395, 335); // 3 * 25
    }
    
    /**
     * Este metodo borra el cielo y el mar del escenario
     */
    public void borrador()
    {
        this.quitaObj(cielo);
        this.quitaObj(mar);
        getWorld().setCameraLocation(0,0);
    }
}
